package com.cqut.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cqut.dto.ComProcessDTO;
import com.cqut.dto.LimitShowDTO;
import com.cqut.model.ComProcess;

public interface IComProcessService {
    boolean save(ComProcess comProcess);

    boolean update(ComProcess comProcess);

    boolean delete(String comProcessId);

    boolean batchDelete(String[] primaryKeys);

    ComProcess findModel(String comProcessId);

    ComProcess findModel(String comProcessId, String[] parameters);

    Map<String, Object> findMap(String comProcessId);

    Map<String, Object> findMap(String comProcessId, String[][] parameters);

    List<ComProcess> loadModels();

    List<ComProcess> loadModels(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<ComProcess> loadModels(String[] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps();

    List<Map<String, Object>> loadMaps(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps(String[][] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> findStage(String competitionId, String comProcessName, LimitShowDTO limitShowDTO);
    
    long count();

    long count(String condition, Object[] values);

    long count(String[] parameters, boolean isDistinct);

    long count(String[] parameters, String condition, Object[] values, boolean isDistinct);
    
    long getCountByComProcessName(@Param("competitionId") String competitionId,@Param("comProcessName")
			String comProcessName);
    
    Map<String, Object> comProcessObject(String comProcessId);

}
